مقدمه
code-server یک کد مایکروسافت ویژوال استودیو است که روی یک سرور مجازیاز راه دور اجرا میشود و مستقیماً از مرورگر شما قابل دسترسی است. این بدان معنی است که میتوانید از دستگاههای مختلف با سیستم عاملهای مختلف استفاده کنید و همیشه یک محیط توسعه مداوم داشته باشید. در این آموزش ، پلت فرم cloud IDE کد سرور مجازیرا بر روی دستگاه Ubuntu 18.04 خود تنظیم کرده و آن را در دامنه خود قرار میدهید ، که با Let’s Encrypt ایمن شده است. برای نسخه دقیق تر این آموزش ، به نحوه راه اندازی رمز سرور مجازیCloud IDE در اوبونتو 18.04 مراجعه کنید. پیش نیازها ⦁ سرور مجازیکه اوبونتو 18.04 را اجرا میکند با حداقل 2 گیگابایت حافظه رم ، دسترسی به ریشه و یک حساب سودو و غیر ریشه. میتوانید این کار را با دنبال کردن راهنمای اولیه تنظیم سرور مجازیUbuntu 18.04 انجام دهید. ⦁ Nginx که روی سرور مجازیشما نصب شده است. برای راهنمایی در مورد نحوه انجام این کار ، مراحل 1 تا 4 نحوه نصب Nginx را در اوبونتو 18.04 مطالعه کنید. ⦁ یک نام دامنه به طور کامل ثبت شده برایهاست کد سرور مجازی، که به سرور مجازیشما اشاره میکند. در این آموزش از code-server.your-domain استفاده میشود. میتوانید نام دامنه را در Namecheap خریداری کنید ، یکی از آنها را به صورت رایگان در Freenom دریافت کنید ، یا از ثبت دامنه مورد نظر خود استفاده کنید. ⦁ هر دو سابقه DNS زیر برای سرور مجازیشما تنظیم شده اند. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها میتوانید این مقدمه را در DigitalOcean DNS دنبال کنید. ⦁ یک پرونده با your-domain که آدرس IP عمومی سرور مجازیشما را نشان میدهد. ⦁ یک پرونده با دامنه www. your-domain که آدرس IP عمومی سرور مجازیشما را نشان میدهد. مرحله 1 - نصب کد سرور مجازیبرای ذخیره کلیه دادهها برای کد سرور مجازی، دایرکتوری زیر را ایجاد کنید: ⦁ $ mkdir ~/code-server به سمت آن جهت دهی کنید: ⦁ $ cd ~/code-server به صفحه نسخههای کد سرور مجازیGithub مراجعه کرده و آخرین لینوکس را انتخاب کنید. آن را با استفاده از آدرس زیر دانلود کنید: ⦁ $ wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz ⦁ آرشیو را باز کنید: ⦁ $ tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz ⦁ به دیرکتوری حاوی کد سرور مجازیقابل اجرا بروید: ⦁ $ cd code-server2.1692-vsc1.39.2-linux-x86_64 ⦁ برای دسترسی به کد سرور مجازیقابل اجرا در سیستم خود ، آن را با دستور زیر کپی کنید: ⦁ $ cd code-server2.1692-vsc1.39.2-linux-x86_64 ⦁ پوشهای برای کد سرور مجازیایجاد کنید تا دادههای کاربر ذخیره شود: ⦁ $ sudo mkdir /var/lib/code-server ⦁ یک سرویس سیستمی، code-server.service ، در دیرکتوری / lib / systemd / system ایجاد کنید: ⦁ $ sudo nano /lib/systemd/system/code-server.service ⦁ خطوط زیر را اضافه کنید: /lib/systemd/system/code-server.service [واحد] توضیحات = سرور مجازیکد پس از = nginx.service [سرویس] نوع = ساده محیط = PASSWORD = کلمه کلیدی شما ExecStart = / usr / local / bin / code-server - host 127.0.0.1 --user-data-dir / var / lib / code-server - رمز ورود راه اندازی مجدد = همیشه [نصب] WantedBy = multi-user.targe /lib/systemd/system/code-server.service [Unit] Description=code-server After=nginx.service [Service] Type=simple Environment=PASSWORD=your_password ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password Restart=always [Install] WantedBy=multi-user.target --host 127.0.0.1 آن را به localhost متصل میکند. --user-data-dir /var/lib/code-server دایرکتوری دادههای کاربر آن را تنظیم میکند. --auth password مشخص میکند که باید بازدید کنندگانی معتبر با رمز عبور وجود داشته باشند. به یاد داشته باشید که your_password را با رمز عبور دلخواه خود جایگزین کنید. فایل را ذخیره کنید و ببندید. سرویس کد سرور مجازیرا شروع کنید: ⦁ $ sudo systemctl start code-server ⦁ بررسی کنید که به درستی شروع شده است: ⦁ $ sudo systemctl status code-server ⦁ خروجی مشابه با زیر مشاهده میکنید: Output ● code-server.service - code-server Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago Main PID: 5216 (code-server) Tasks: 23 (limit: 2362) CGroup: /system.slice/code-server.service ├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password ... بعد از راه اندازی مجدد سرور مجازی، سرویس کد سرور مجازیرا فعال کنید: ⦁ $ sudo systemctl enable code-server ⦁ مرحله 2 – به نمایش گذاشتن کد سرور مجازیاکنون Nginx را به عنوان یک پروکسی معکوس برای کد سرور مجازیپیکربندی خواهید کرد. برای ذخیره پیکربندی جهت نمایش دادن کد سرور مجازیدر دامنه خود ، code-server.conf را ایجاد کنید: sudo nano /etc/nginx/sites-available/code-server.conf خطوط زیر را برای تنظیم بلوک سرور مجازیخود با دستورالعملهای لازم اضافه کنید: /etc/nginx/sites-available/code-server.conf server { listen 80; listen [::]:80; server_name code-server.your_domain; location / { proxy_pass http://localhost:8080/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } } code-server.your_domain را با دامنه مورد نظر خود جایگزین کنید ، سپس فایل را ذخیره کنید و ببندید. برای فعال کردن پیکربندی این سایت ، یک سیملینک از آن ایجاد کنید: ⦁ $ sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf ⦁ اعتبار پیکربندی را تست کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر را مشاهده خواهید کرد: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful برای اجرای پیکربندی ، Nginx را مجدداً راه اندازی کنید: ⦁ $ sudo systemctl restart nginx ⦁ مرحله 3 - دامنه خود را ایمن کنید اکنون دامنه خود را با استفاده از گواهی Let’s Encrypt TLS ایمن میکنید. منبع بسته Certbot را به سرور مجازیخود اضافه کنید: ⦁ $ sudo add-apt-repository ppa:certbot/certbot ⦁ Certbot و افزونه Nginx آن را نصب کنید: ⦁ $ sudo apt install python-certbot-nginx ⦁ ufw را برای پذیرش ترافیک رمزگذاری شده پیکربندی کنید: ⦁ $ sudo ufw allow https ⦁ خروجی به شکل زیر خواهد بود: Output Rule added Rule added (v6) برای پیکربندی برای اجرا مجدد آن را بارگذاری کنید: ⦁ $ sudo ufw reload ⦁ خروجی زیر نشان داده میشود: Output Firewall reloaded به دامنه کد سرور مجازیخود بروید. رمز عبور سرور مجازیکد خود را وارد کنید. مرز نمایش داده شده در دامنه خود را مشاهده خواهید کرد. برای تأمین امنیت آن ، یک مجوز Let’s Encrypt TLS با استفاده از Certbot نصب کنید. برای دامنه خود با دستور زیر درخواست یک مجوز بدهید: ⦁ $ sudo certbot --nginx -d code-server.your_domain ⦁ برای اطلاع رسانیهای فوری یک آدرس ایمیل ارائه دهید ، شرایط خدمات EFF را بپذیرید ، و تصمیم بگیرید که آیا تمام ترافیک HTTP را به HTTPS هدایت کنید یا خیر. خروجی مشابه زیر خواهد بود: Output IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your_domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" ... Certbot با موفقیت گواهینامههای TLS را ایجاد میکند و آنها را در پیکربندی Nginx برای دامنه شما اعمال مینماید. نتیجه اکنون شما دارای کد سرور مجازی، و یک cloud IDE همه کاره هستید که بر روی سرور مجازیUbuntu 18.04 نصب شده است ، در دامنه شما قرار گرفته و با استفاده از گواهی نامههای Let’s Encrypt ایمن شده است. برای اطلاعات بیشتر در مورد ویژگیها و دستورالعملهای دقیق در مورد سایر مؤلفههای کد سرور مجازی، به مطالب ویژوال استودیو کد مراجعه کنید.